{{extend "base.html"}}

{{block head}}
<script type="text/javascript" charset="utf-8">
	var datagrid;
	$(function() {

		datagrid = $('#datagrid').datagrid({
			url : '/projectpost/rsync',
			title : '',
			iconCls : 'icon-save',
			pagination : true,
			pagePosition : 'bottom',
			pageSize : 20,
			pageList : [ 20, 30, 40 ],
			fit : true,
			fitColumns : false,
			nowrap : false,
			border : false,
			idField : 'id',
			//checkOnSelect : false,
			//selectOnCheck : true,
			frozenColumns : [ [ {
				title : '编号',
				field : 'id',
				width : 150,
				sortable : true,
				checkbox : true
			}, {
				title : '同步模块名',
				field : 'rsync_module',
				width : 100,
				sortable : true
			} ] ],
			columns : [ [{
				title : '服务端web目录',
				field : 'svn_webdir_server',
				sortable : true,
				width : 250
			}, {
				title : '客户端web目录',
				field : 'svn_webdir_client',
				sortable : true,
				width : 250
			}, {
				title : '仓库名称',
				field : 'svn_id',
				width : 100
			}, {
				title : 'svn钩子',
				field : 'svn_hook',
				width : 500
			}, {
				title : '版本/消息',
				field : 'svn_msg',
				width : 200
			}, {
				title : '关联集群',
				field : 'awsloadbalancer_id',
				width : 100
			}] ],
			toolbar : [ {
				text : '增加',
				iconCls : 'icon-add',
				handler : function() {
					append();
				}
			}, '-', {
				text : '删除',
				iconCls : 'icon-remove',
				handler : function() {
					remove();
				}
			}, '-', {
				text : '修改',
				iconCls : 'icon-edit',
				handler : function() {
					edit();
				}
			}, '-', {
				text : '取消选中',
				iconCls : 'icon-undo',
				handler : function() {
					datagrid.datagrid('clearSelections');
					datagrid.datagrid('unselectAll');
				}
			}, '-', {
				text : '更新同步配置',
				iconCls : 'icon-edit',
				handler : function() {
					updatersync();
				}
			}, '-', {
				text : '提取仓库代码',
				iconCls : 'icon-edit',
				handler : function() {
					updatesvnrepo();
				}
			}, '-', {
				text : 'svn清理',
				iconCls : 'icon-edit',
				handler : function() {
					svncleanup();
				}
			}, '-']
		});

	});

	function edit() {
		var rows = datagrid.datagrid('getSelections');
		if (rows.length == 1) {
			var p = parent.sy.dialog({
				title : '编辑rsync同步配置',
				href : '/project/rsyncedit/' + rows[0].id,
				width : 600,
				height : 300,
				buttons : [ {
					text : '编辑',
					handler : function() {
						var f = p.find('form');
						f.form('submit', {
							url : '/project/rsyncsave',
							success : function(d) {
								var json = $.parseJSON(d);
								if (json.success) {
									datagrid.datagrid('reload');
									p.dialog('close');
								}
								parent.sy.messagerShow({
									msg : json.msg,
									title : '提示'
								});
							}
						});
					}
				} ],
				onLoad : function() {
					var f = p.find('form');
					f.form('load', {
						id : rows[0].id,
						rsync_module : rows[0].rsync_module,
						svn_webdir_server : rows[0].svn_webdir_server,
						svn_webdir_client : rows[0].svn_webdir_client,
						//svn_id : rows[0].svn_id,
					});
				}
			});
		} else if (rows.length > 1) {
			parent.sy.messagerAlert('提示', '同一时间只能编辑一条记录！', 'error');
		} else {
			parent.sy.messagerAlert('提示', '请选择要编辑的记录！', 'error');
		}
	}
	function append() {
		var p = parent.sy.dialog({
			title : '添加rsync同步配置',
			href : '/project/rsyncadd',
			width : 600,
			height : 300,
			buttons : [ {
				text : '添加',
				handler : function() {
					var f = p.find('form');
					f.form('submit', {
						url : '/project/rsyncsave',
						success : function(d) {
							var json = $.parseJSON(d);
							if (json.success) {
								datagrid.datagrid('reload');
								p.dialog('close');
							}
							parent.sy.messagerShow({
								msg : json.msg,
								title : '提示'
							});
						}
					});
				}
			} ]
		});
	}
	function remove() {
		var rows = datagrid.datagrid('getChecked');
		var ids = [];
		if (rows.length > 0) {
			parent.sy.messagerConfirm('请确认', '您要删除当前所选项目？', function(r) {
				if (r) {
					for ( var i = 0; i < rows.length; i++) {
						ids.push(rows[i].id);
					}
					$.ajax({
						url : '/project/rsyncdel',
						data : {
							id : ids.join(',')
						},
						dataType : 'json',
						success : function(d) {
							datagrid.datagrid('load');
							datagrid.datagrid('unselectAll');
							parent.sy.messagerShow({
								title : '提示',
								msg : d.msg
							});
						}
					});
				}
			});
		} else {
			parent.sy.messagerAlert('提示', '请勾选要删除的记录！', 'error');
		}
	}
	
	function updatersync() {

		  $.ajax({
			  url : '/projectaction/actionproject',
			  data : {
				  action : "updatersync"
			  },
			  //数据提交前显示进度条
			  beforeSend: function(){
				  $.messager.progress({
						text : '数据提交后台更新中....',
						interval : 100
					});
			  },
			  //得到服务器返回后关闭进度条
			  complete: function(){
				  $.messager.progress('close');
			  },
			  dataType : 'json',
			  success : function(d) {
				  datagrid.datagrid('load');
				  datagrid.datagrid('unselectAll');
				  parent.sy.messagerShow({
					  title : '提示',
					  msg : d.msg
				  });
			  }
		  });

	}
	
	function updatesvnrepo() {
		var rows = datagrid.datagrid('getChecked');
		var ids = [];
		if (rows.length > 0) {
			parent.sy.messagerConfirm('请确认', '您要提取当前所选仓库代码？', function(r) {
				if (r) {
					for ( var i = 0; i < rows.length; i++) {
						ids.push(rows[i].id);
					}
					$.ajax({
						url : '/projectaction/actionproject',
						data : {
							id : ids.join(','),
							action : "updatesvnrepo"
						},
						//数据提交前显示进度条
						  beforeSend: function(){
							  $.messager.progress({
									text : '数据提交后台更新中....',
									interval : 100
								});
						  },
						  //得到服务器返回后关闭进度条
						  complete: function(){
							  $.messager.progress('close');
						  },
						  dataType : 'json',
						  success : function(d) {
							  datagrid.datagrid('load');
							  datagrid.datagrid('unselectAll');
							  parent.sy.messagerShow({
								  title : '提示',
								  msg : d.msg
							  });
						  }
					});
				}
			});
		} else {
			parent.sy.messagerAlert('提示', '请勾选要提取新建的web仓库！', 'error');
		}
	}
	
	function svncleanup() {
		var rows = datagrid.datagrid('getChecked');
		var ids = [];
		if (rows.length > 0) {
			parent.sy.messagerConfirm('请确认', '您要提取当前所选仓库代码？', function(r) {
				if (r) {
					for ( var i = 0; i < rows.length; i++) {
						ids.push(rows[i].id);
					}
					$.ajax({
						url : '/projectaction/actionproject',
						data : {
							id : ids.join(','),
							action : "svncleanup"
						},
						//数据提交前显示进度条
						  beforeSend: function(){
							  $.messager.progress({
									text : '数据提交后台更新中....',
									interval : 100
								});
						  },
						  //得到服务器返回后关闭进度条
						  complete: function(){
							  $.messager.progress('close');
						  },
						  dataType : 'json',
						  success : function(d) {
							  datagrid.datagrid('load');
							  datagrid.datagrid('unselectAll');
							  parent.sy.messagerShow({
								  title : '提示',
								  msg : d.msg
							  });
						  }
					});
				}
			});
		} else {
			parent.sy.messagerAlert('提示', '请勾选要执行svn cleanup的模块！', 'error');
		}
	}
</script>
{{end}}

{{block bodyclass}}
<body class="easyui-layout" data-options="fit:true">
{{end}}

{{block content}}
	<div data-options="region:'center',border:false" style="overflow: hidden;">
		<table id="datagrid"></table>
	</div>

{{end}}